// 引入 Request
import Request from './index.js'
import store from '../store/index'

// 设置 通用的 baseUrl 以及 header
// export var baseUrl = 'http://youjialibo.wm76.mtnet.ren/' //测试服务器
export var baseUrl = 'http://youjialibo.wm76.mtnet.ren/' //测试服务器
export var upUrl = 'https://fangguaner.wm76.mtnet.ren/api/UploadFile/index' //测试服务器
// export var baseUrl = 'https://lovedonote.goodykj.com:8080'
const config = {
	baseUrl: baseUrl,
	header: {
		"content-type": "application/json"
	}
}
// 设置自己的请求拦截器，必须加上 `async`
// 请求前的拦截，比如是否登录/过期/刷新token/...
const reqInterceptor = async (options) => {
	// 微信静默登录 不等于-1说明存在
	// if (options.url.indexOf('/oauth/token') !== -1) {
	//     options.header['Authorization'] = "Basic Y29uc3VtZXI6Y29uc3VtZXI="
	// }

	//不是下列接口的话就带上token
	//   if ((options.url.indexOf('/api/index/sign_in') === -1)) {
	// debugger
	//       let access_token = uni.getStorageSync('access_token')
	//       options.header['Authorization'] = `Bearer ${access_token}`
	//   }


	//不是下列接口的话就带上token
	if ((options.url.indexOf('/api/index/index') === -1)) {
		let token = uni.getStorageSync('token')
		options.data = {
			...options.data,
			...{
				token: token
			}
		}
	}


	// 必须返回一个 Object
	// 拦截请求：return {mypReqToCancel: true, ...}
	// TODO: 添加任意拦截逻辑
	return options
}

// 设置自己的响应拦截器
// 统一对返回的数据进行整理，方便接口统一使用
// conf是您api的options信息，一般情况下您只需要用到您自定义的标记字段

const resInterceptor = (response, conf = {}) => {
	// if(store.state.debug){
	//     console.log(response,'测试环境模式，响应拦截器数据')
	// }
	if (response.mypFail) {
		uni.hideLoading();
		uni.showToast({
			title: '服务器异常，请联系管理员',
			icon: 'none',
			duration: 2000
		})
		return Promise.reject(response)
	}
	// 必须返回你需要处理的数据，将会进入resolve（then中处理）
	// 如果需要reject，需要设置mypReqToReject:true，还可以携带自己定义的任何提示内容（catch中处理）
	// uni.request进入fail也会进入该拦截器（为了统一处理逻辑），这个时候的response参数为{mypFail: true, response: fail info}。fail时不管返回啥，都进入reject(catch)
	if (response.statusCode !== 200) {
		uni.hideLoading();
		uni.showToast({
			title: '服务器挂掉了',
			icon: 'none',
			duration: 2000
		})
		return Promise.reject(response)
	}
	if (response.data.code == 205) {
		uni.showToast({
			title: response.data.msg,
			icon: "none",
			duration: 1500,
			mask: true
		})
		if (response.data.msg == "你的积分不足") {
			setTimeout(function() {
				uni.navigateBack({
					delta: 1
				})
			}, 1500)
		}
	}

	if(response.data.code == 999 || response.data.code == 998){
	let identity=uni.getStorageSync("identity")
	if(identity==="worker"){
		uni.showToast({
			title:response.data.msg,
			icon:"none",
			duration:1500
		})
		setTimeout(function(){
			return uni.redirectTo({
				url:"/pagesA/login/index"
			})
		},1500)
	}else{
		debugger
		// store.commit('changeCheckLogin', false)
		uni.showToast({
			title:response.data.msg,
			icon:"none",
			duration:1500
		})
		setTimeout(function(){
			// return uni.redirectTo({
			// 	url:"/pages/my/index"
			// })
			uni.switchTab({
				url:"/pages/my/index"
			})
		},1500)
		// return uni.navigateTo({
		//      url: '/pages/my/index'
		// });
	}
	}
	if (response.data.code != 200) {
		uni.hideLoading();
		uni.showToast({
			title: response.data.message,
			icon: 'none',
			duration: 2000
		})
		return Promise.reject(response.data)
	}
	return response.data
}

// 实例化请求器
// 您可以根据需要实例化多个请求器
const req = new Request(config, reqInterceptor, resInterceptor)

export default req
